<?php
/**
 * Element Auflistung zu Html-Scanner zur Ausgabe und Weiterverarbeitug von Html-Tags
 *
 * @author		Joachim Ruf
 * @copyright	Copyright (c) 2003-2013 Loresoft Software (http://www.loresoft.de)
 * @license		http://yapary.loresoft.de/lizenzbedingungen     New BSD License
 * @TODO
 * */


Class Yapary_WWW_Html_ElementList
{
    private $arrContent = array();
    private $iter       = 0;


    function __construct(array $_arrContent) {
        $this->arrContent = $_arrContent;
    }

    /**
	 * Entfernt das Element $index
	 * @param int $index         : Index des zu entfernenden Tags
	 * @return void
	 * */
    public function remove ($index) {
        unset($this->arrContent[$index]);
    }

    /**
	 * Verknuepft das Ergebnis mit einer neuen Suche mit dem alten Suchergebnis
	 * @param string $content    : Content, in welchem die neue Suche vorgenommen werden soll
	 * @return Yapary_WWW_Html_Concatenation
	 * */
    public function concatenation ($_content) {
        return new Yapary_WWW_Html_Concatenation($this->arrContent, $_content);
    }

    /**
	 * Liefert das Element $index
	 * @param int $index         : Index des auszugebenden Elements
	 * @return Yapary_WWW_Html_Element|NULL
	 * */
    public function getElement ($index) {
        if (!isset($this->arrContent[$index])) {
            return NULL;
        }

        return new Yapary_WWW_Html_Element($this->arrContent[$index]);
    }


    /**
	 * Liefert die Anzahl an Eintraege
	 * @return int
	 * */
    public function getLength () {
        return (int) count($this->arrContent);
    }

    /**
	 * Iterator: Liefert das naechste Vorkommen von "Element"
	 * @return Yapary_WWW_Html_Element
	 * */
    public function getNext () {
        $iter = $this->iter++;
        if (!isset($this->arrContent[$iter])) {
            return NULL;
        }

        return new Yapary_WWW_Html_Element($this->arrContent[$iter]);
    }

    /**
	 * Resettet den Iterator getNext()
	 * @return void
	 * */
    public function reset () {
        $this->iter = 0;
    }



}

?>